import config from "../config";
// 抽离出位置方法
class Position {
  // 存储所有模型的容器
  collection: { x: number, y: number }[] = [];
  // 批量获取坐标 因为防止有其他模型重叠
  public positionCollection(num: number) {
    let collection = [];
    let i = 0;
    for (; i < num; i++) {
      while (true) {
        let pos = this.position();
        // 判断是否重叠
        let exists = this.collection.some((item) => {
          return item.x === pos.x && item.y === pos.y;
        });
        if (!exists) {
          collection.push(pos);
          this.collection.push(pos);
          break;
        };
      };
    };
    // console.log('全部模型的坐标集合：', this.collection);
    return collection;
  };
  
  // 获取随机坐标
  public position() {
    return {
      x: Math.floor(Math.random() * (config.canvas.width / config.model.width)) * config.model.width,
      // 需要预留出坦克的位置
      y: Math.floor(Math.random() * (config.canvas.hieght / config.model.height - 5)) * config.model.height + config.model.height * 2
    }
  };
}

export default new Position();